package com.chixing.util;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;

/**
     * 获得SqlSession与关闭SqlSession
     */
public class MyBatisUtil {

        private static SqlSessionFactory sqlSessionFactory;

        static {
            //将mybatis-config.xml（还包含mapper.xml）加载到读取流中
            InputStream is = MyBatisUtil.class.getClassLoader().getResourceAsStream("mybatis-config.xml");
            System.out.println(is);
            //读取mybatis-config.xml的数据源信息，建立数据库连接
            sqlSessionFactory =  new SqlSessionFactoryBuilder().build(is);

        }

        /**
         * SqlSession : 一级缓存 ，管理数据库的sql语句操作（增删改查操作），封装的是PreparedStatement
         * @return 返回SqlSession对象
         */
        public static SqlSession getSqlSession(){
            return sqlSessionFactory.openSession();
        }

        /**
         * 关闭SqlSession
         */
        public static void closeSqlSession(SqlSession sqlSession){
            if(sqlSession!=null ){
                sqlSession.close();
            }
        }

    }
